package com.catazy.mvvmlib.ext

/**
 * 作者: Tao
 * 日期: 2023/11/8
 * 时间: 16:58
 * 描述: String 字符串 扩展类
 */

/**
 * 判端字符串是否是JsonArray类型
 *      看是否包含[、]
 * @return Boolean
 */
fun String?.isJsonArray(): Boolean {
    return this?.run {
        val str = this.trim()
        str.startsWith("[") && str.endsWith("]")
    } ?: false
}

/**
 * 判断字符串内部是否是Json格式的
 */
fun String?.isJson(): Boolean =
    this?.run {
        val str = this.trim()
        when {
            str.startsWith("{") && str.endsWith("}") -> true
            str.startsWith("[") && str.endsWith("]") -> true
            else -> false
        }
    } ?: false

/**
 * 判断字符串是否是绝对路径
 */
fun String?.isAbsUrl() =
    this?.let {
        it.startsWith("http://", true) || it.startsWith("https://", true)
    } ?: false

/**
 * 判断字符串是否是Base64编码
 */
fun String?.isDataUrl() =
    this?.let {
        Regex("data:.*?;base64,(.*)").matches(it)
    } ?: false

fun String.splitNotBlank(vararg delimiter: String, limit: Int = 0): Array<String> = run {
    this.split(*delimiter, limit = limit).map { it.trim() }.filterNot { it.isBlank() }
        .toTypedArray()
}